System and method for optimizing network communication in response to network conditions

ABSTRACT

A system and method for facilitating communications between a mobile device and a network application are provided. A mobile device transmits a request for data change information that includes a time out interval. The network application receives the request and measures a time elapsed since the receipt of the data change request. The network application will only transmit a notification to the mobile device client if new data is received or the time out interval has elapsed. As notifications are received, the mobile client device tunes the time out interval based upon network and device parameters.

CROSS-REFERENCE TO RELATED APPLICATION

This application claims the benefit of U.S. patent application Ser. No.60/577,615, entitled SYSTEM AND METHOD FOR OPTIMIZING NETWORKCOMMUNICATION IN RESPONSE TO NETWORK CONDITIONS, and filed on Jun. 7,2004. U.S. patent application Ser. No. 60/577,615 is incorporated byreference herein.

FIELD OF THE INVENTION

In general, the present invention relates to mobile devices, computersoftware and communication devices, and in particular, to a system andmethod for optimizing network communication in response to networkconditions.

BACKGROUND OF THE INVENTION

Generally described, mobile devices, such as mobile telephones andhand-held devices, utilize communication networks to exchange data withother mobile devices and/or computer devices. In a typical embodiment, amobile device can utilize a wireless communication network, and variousnetwork protocols, to transmit and receive data. In such an embodiment,a mobile device can maintain continuous, or semi-continuous, wirelessconnections to allow a user with a mobile device to receive and transmitelectronic mail. As the computing device processing resources andwireless network communication bandwidth continue to increase, the useof wireless enabled mobile devices to receive/transmit electronic mailhas substantially increased.

FIG. 1 is a block diagram illustrative of a system 100 for facilitatingthe transmission of electronic mail data to a mobile device via acellular communication network. The system 100 is generally referred toas a “push” data model, in which data, such as electronic mail messages,is transmitted to a client as the data is received. With reference toFIG. 1, the system 100 includes a plurality of clients 102, such asmobile telephones, hand-held devices, etc., that include some form ofwireless (e.g., cellular) transmission capability. As illustrated inFIG. 1, each of the mobile devices 102 is in wireless communication withone of several mobile device operators 104. Generally described, amobile device operator 104 is a service provider that maintains radiofrequency-based communication with any number of mobile devices 102. Thewireless communication between the mobile devices 102 and the mobiledevice operator 104, such as via a cellular communication network, iswell known and will not be described in greater detail.

With continued reference to FIG. 1, each mobile device operator 104 isalso in communication with a data service provider 106. A typical dataservice provider 106 can be a server computer configured to transmitmessages corresponding to identified mobile users. As will be explainedin greater detail below, the data service provider 106 monitors forincoming data (e.g., electronic mail messages) and pushes the data to acorresponding mobile operator 104 for transmission to a selected mobiledevice 102. The network connection between the data service provider 106and the mobile operators 104 may be via a wireless communication networkand/or a wired communication network. The data service provider 106 isalso in communication with a number of electronic mail interfacecomputing devices 108. The electronic mail interface computing devices108 generally correspond to specially configured computing devices thatserve as an interface between a local network mail repository 110 andthe data service provider 106.

In practice, as updated information, such as a new electronic mail, isreceived at the network mail repository 110, the electronic mailinterface computing device 108 obtains a copy of the mail and forwards anotification to the data service provider 106. The data service provider106 processes the incoming message notifications and identifies themobile device 102 that is to receive the mail. The data service provider106 then forwards a notification and/or the mail to a correspondingmobile operator 104, which transmits the information to the selectedmobile device 102.

In this approach, the mobile device 102 receives notifications/data asthe data is received by the data service provider 106. Although thisapproach provides a real-time, or substantially real-time, transmissionof data to a mobile device 102, it requires a number of specializedcomputing device applications and/or specialized business relationships.For example, in a typical embodiment, each local network is required tomaintain an electronic mail interface computing device 108 to forwardincoming message notifications to the data service provider 106.Additionally, the system 100 requires a centralized informationcollection and distribution center (e.g., data service provider 106),which typically charges a service fee to each mobile device user.Further, this approach requires the data service provider 106 tomaintain appropriate communication interfaces, such as specializedsoftware, and specialized business relationships with a number of mobileoperators to allow the data service provider to initiate contact with aselected mobile device 102.

FIG. 2 is a block diagram illustrative of an alternate system 200 forfacilitating the transmission of electronic mail data to a mobile devicevia a cellular communication network. The system 200 is generallyreferred to as a “pull” data model, in which data, such as electronicmail messages, is transmitted to a client, such as a mobile device, inresponse to a request for new data by the client. Similar to system 100(FIG. 1), the system 200 includes a plurality of mobile device clients202, that have some form of wireless transmission capability (e.g.,cellular communication capabilities). Each of the mobile devices 202 isin wireless communication with one of several mobile device operators204. In this embodiment, however, the wireless communication linkbetween the mobile device operator 204 and each mobile device 202 is nota specialized communication link for transmitting electronic mailmessages. Instead, the communication link is a traditional datatransmission communication link with a wide area network 206, such asthe Internet. For example, in one common embodiment, a wireless enabledmobile device 202 can transmit data across the Internet in accordancewith the Transmission Control Protocol (TCP)/Internet Protocol (IP)protocol. The mobile devices 202 utilize the network connection 206 tointerface directly with the local electronic mail interface computingdevices 208.

In practice, the mobile device 202 establishes a communication link withthe electronic mail interface computing device 208, typically through asecure data transmission protocol. The mobile device 202 then transmitsa request to receive any updated information (e.g., new electronic mail)directly to the electronic mail interface computing device 208. If thereis new data for the mobile device user, the electronic mail interfacecomputing device 208 generates an appropriate response that instructsthe mobile device 102 to pull the data from the electronic mailinterface computing device 208. If there is not new data, the electronicmail interface computing device 208 generates a negative response to therequesting mobile device 202. Once the mobile device request isprocessed, the communication link between the mobile device 202 and theelectronic mail interface computing device 208 is terminated.

By allowing a direct communication channel between the mobile devices202 and the electronic mail interface computing devices 208 over anetwork connection, the system 200 mitigates the need for specializedsoftware/computing devices for each local network and at each mobileoperator 204. However, conventional systems using a “pull” data modelcan become deficient in that incoming data may not be deliveredcontemporaneously as the data is received. Although this deficiency maybe reduced by increasing the frequency in which the mobile devices 204generate the above described data change requests, the typicalmethodology for establishing a communication link between a mobiledevice 204 and the electronic mail interface computing device 208consumes power resources from the mobile device.

Thus, there is a need for a system and method for facilitatingcommunication between a computing device and a network application thatdelivers incoming data notifications contemporaneously as the data isreceived while mitigating the need for specialized software/computingdevices for each network.

SUMMARY OF THE INVENTION

A system and method for facilitating communications between a mobiledevice and a network application are provided. A mobile device transmitsa request for data change information that includes a time out interval.The network application receives the request and measures a time elapsedsince the receipt of the data change request. The network applicationwill only transmit a notification to the mobile device client if newdata is received or the time out interval has elapsed. As notificationsare received, the mobile client device tunes the time out interval basedupon network and device parameters.

In accordance with an aspect of the present invention, a method forfacilitating communication between a mobile device and a networkapplication is provided. In accordance with the method, a networkapplication obtains a request for change of data. The request for changeof data includes a first set of expiration data for returning aresponse. The network application monitors a time interval for providinga response to the request for change of data. Additionally, the networkapplication, transmits a notification that no data has changed if thetime interval exceeds an expiration period.

In accordance with another aspect of the present invention, a method forfacilitating communications between a mobile device and a networkapplication is provided. In accordance with the method, a mobile devicetransmits a first request for change of data. The first request forchange of data includes a first set of expiration data for returning aresponse. The mobile device then determines an event corresponding tothe first request for change of data. The mobile device generates asecond set of expiration data for returning a response based upon atleast one network condition. Additionally, the mobile device transmits asecond request for change of data. The second request for change of dataincludes the second set of expiration data for returning a response.

In accordance with a further aspect of the present invention, a systemfor facilitating data exchange is provided. The system includes one ormore client devices for generating a request for change of data. Therequest for generating a change of data includes a first expiration timeperiod. The system further includes at least one network application forreceiving the request for change of data and transmitting a notificationthat no data has changed if a monitored time period corresponding to thefirst expiration time period has expired. The one or more client devicestransmit a subsequent request for change of data if an event hasoccurred. The subsequent request for change of data includes a secondexpiration time period.

BRIEF DESCRIPTION OF THE DRAWINGS

The foregoing aspects and many of the attendant advantages of thisinvention will become more readily appreciated as the same become betterunderstood by reference to the following detailed description, whentaken in conjunction with the accompanying drawings, wherein:

FIG. 1 is a block diagram of a system for facilitating the transmissionof electronic mail data to a mobile device via a cellular communicationnetwork in accordance with a push data model;

FIG. 2 is a block diagram of a system for facilitating the transmissionof electronic mail to a mobile device via a cellular communicationnetwork in accordance with a pull data model;

FIG. 3A is a block diagram of the system of FIG. 2 illustrating thegeneration of a data change request by a mobile device including a timeout interval in accordance with an aspect of the present invention;

FIG. 3B is a block diagram of the system of FIG. 2 illustrating thetransmission of a notification of a data change by a network applicationin accordance with an aspect of the present invention;

FIG. 3C is a block diagram of the system of FIG. 2 illustrating thetransmission of a time out interval expiration notification by a networkapplication in accordance with an aspect of the present invention;

FIG. 3D is a block diagram of the system of FIG. 2 illustrating theprocessing of a time out interval expiration by a mobile device inaccordance with an aspect of the present invention;

FIG. 4 is a flow diagram illustrative of a data change requesttransmission and monitoring routine implemented by a mobile deviceclient in accordance with an aspect of the present invention;

FIG. 5 is flow diagram illustrative of time out interval tuningsub-routine implemented by a mobile device client in accordance with anaspect of the present invention;

FIG. 6 is a flow diagram illustrative of client data change requestprocessing routine implemented by a network application in accordancewith the present invention; and

FIG. 7 is a block diagram of a system for facilitating the transmissionof electronic mail to a mobile device via a cellular communicationnetwork and a separate notification channel in accordance with an aspectof the present invention.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT

Generally described, the present invention relates to a system andmethod for optimizing communication between a client device and anetwork application. More specifically, the present invention isdirected toward a system and method for optimizing communication betweena mobile device and a network application via a wireless network. Thepresent invention will be described with regard to an architectureincorporating a pull data model in which the mobile device requests datachange information in the form of electronic mail messages from anetwork application. Further, the present invention will be describedwith regard to the utilization of a time out interval to maintain acommunication link between a mobile device and a network application.Although the present invention will be described with regard to a mobiledevices, wireless communication networks, and/or electronic mailtransmissions, one skilled in the relevant art will appreciate that thedisclosed embodiments are illustrative in nature and should not beconstrued as limiting.

In an illustrative embodiment of the present invention, a systemimplementing a pull data model, such as system 200 (FIG. 2), may beutilized to facilitate the transmission of information between a client,such as a mobile device 202, and a network application, such as anelectronic mail interface computing device 208. The mobile device 202and the electronic mail interface computing device 208 transmitinformation via a typical network data connection 206, such as theInternet. The connection from the network 206 to the mobile device 202may be facilitated through a mobile device operator 204 (e.g., a dataconnection via a wireless communication link) or via a direct wirelessconnection to the network (e.g., a Bluetooth protocol wirelessconnection).

In accordance with the present invention, a mobile device issues a datachange request to the electronic mail interface computing device 208.The data change request can include a registration request for new datathat has arrived at the electronic mail interface computer device 208(e.g., a new email message) and a time-out interval. The time-outinterval specifies a time in which the electronic mail interfacecomputing device 208 is required to provide a positive or negativeresponse to the registration request for new data. Unlike traditionaldata change requests, the electronic mail interface computing device 208does not provide an immediate response to the data change request if nonew data is available. Instead, the electronic mail interface computingdevice 208 maintains a communication link with the mobile device 202until it detects an information change (e.g., the arrival of newelectronic mail) or the expiration of the time out interval. Uponoccurrence of either event, the electronic mail interface computingdevice 208 transmits an appropriate response to the mobile device 202.In turn, the mobile device 202 can update the time-out intervalaccording to various network conditions and sends a subsequent datachange request with the updated time out interval. By maintainingcommunication even when no data has been received, the electronic mailinterface computing device 208 prevents the termination of thecommunication link with the mobile device 202.

With reference now to FIGS. 3A-3D, various embodiments for processing aclient request having a time out interval in accordance with the presentinvention will be described. With reference to FIG. 3A, the process isinitiated by the generation of a registration request and time outinterval by a client on a mobile device. In an illustrative embodimentof the present invention, the registration request can include theregistration of the type of information the client wishes to receive andvarious configuration information, such as notification preferences,client authentication information, and the like. As will be described ingreater detail below, the time out interval may be in the form of afixed time period or as a set of criteria that allows for thecalculation of a time out interval. The time out interval may be adefault period set by the mobile device client application, the mobiledevice operator 204 and the electronic mail interface computing device208. For example, a mobile device operator 204 may maintain their owntime out interval that will result in a dropped communication link if nodata is passed between the mobile device 202 and the electronic mailinterface computing device 208 during the mobile deviceoperator-specified time out interval. Accordingly, a default time outinterval would likely be of a value less than the time out intervalspecified by the particular mobile device operator 204 used by themobile device 202. The registration request and time out interval istransmitted over the network 206 and is received by the electronic mailinterface computing device 208 or a specialized application on theelectronic mail interface computing device 208.

Upon processing the registration request, the electronic mail interfacecomputing device 208 registers the mobile device client for receipt ofall requested information, as authorized. As described above, if no newdata is currently available for the registered client, the electronicmail interface computing device 208 does not automatically transmit anegative response to the mobile device 202. However, because the datachange request remains pending and the communication link is notimmediately terminated.

With reference now to FIG. 3B, in one embodiment, the electronic mailinterface computing device 208 receives a notification that a datachange has occurred that needs to be passed to the mobile device 202. Inan illustrative embodiment of the present invention, the notificationcan include a notification from an electronic mail repository, such asan electronic mail server/client, that a user corresponding to themobile device 202 has received a new electronic mail. The electronicmail interface computing device 208 transmits a notification to themobile device 202, via the network 206, that the new data is available.In an illustrative embodiment of the present invention, the notificationcan include descriptive information or other criteria that may be usedby the user and/or mobile device to decide whether the data will beretrieved. If the data is to be retrieved, the mobile device 202transmits a request for data retrieval to the electronic mail interfacecomputing device 208 in accordance with traditional and well-known dataprotocols, such as the Hypertext Transfer Protocol (“HTTP”), which willnot be explained in greater detail. Once the data has been retrieved,the process illustrated in FIG. 3A can be repeated by the transmissionof a new data registration request and time out interval by the mobiledevice 202.

With reference now to FIG. 3C, in another embodiment, the electronicmail interface computing device 208 continues to monitor the elapsedperiod time since the last communication for each registered mobiledevice client. If the electronic mail interface computing device 208detects that the time out interval for registered client has expired, ittransmits a notification to the mobile device 202 that the time outinterval has expired and no new data notifications have been received.By transmitting the time out interval expiration notification, theelectronic mail interface computing device 208 prevents thecommunication link with the mobile device 202 from being terminated, ordropped, by the mobile device operator 204.

As will be explained in greater detail below, upon receipt of the timeout interval expiration notification, the mobile device 202 may updatethe previous time out interval. In an illustrative embodiment of thepresent invention, the mobile device 202 updates the time out intervalby measuring or observing one of a variety of network conditions. Themobile device 202 then determines whether the time out interval shouldbe adjusted based upon the measured, or observed, network conditions.Upon tuning, or adjusting, the time out interval, the mobile device 202transmits a new registration request with the updated time out intervalvia the network 206. The electronic mail interface computing device 208obtains the new request and repeats the registration process and timeout clock measurement with the updated time out interval.

With reference now to FIG. 3D, in further embodiment, the mobile device202 also monitors the time expired since the transmission of theprevious registration request. If the mobile device 202 detects theexpiration of the time out interval and it has not received a no newdata notification from the electronic mail interface computing device208, it assumes that communication link has been terminated or otherwisedropped. Accordingly, the mobile device 202 updates the time outinterval and transmits a registration request with the updated with theupdated time out interval via the network 206. The electronic mailinterface computing device 208 obtains the new request and repeats theregistration process and time out clock measurement with the updatedtime out interval. As described above, the mobile device 202 would alsomonitor the updated time out interval associated with the new request.

With reference to FIG. 4, a flow diagram illustrative of a routine 400implemented by a mobile device 202 to transmit and monitor a data changerequest to an electronic mail interface computing device 208 inaccordance with the present invention will be described. At block 402,the mobile device transmits a registration request and time out intervalto the electronic mail interface computing device 208. In anillustrative embodiment of the present invention, the registrationrequest may correspond to a selection of one or more data types,specific data files, or application programs that the mobile device maywish to receive updated information from. For example, a registrationmay indicate that a user wishes to receive notification when newelectronic mail is received or when a particular document has beenupdated. The registration request may also correspond to criteria, suchas rules or keywords, for selecting which data to transmit to the mobiledevice. The registration request can also include credentials, or otherauthentication information, that may be needed to receive updatedinformation.

In accordance with an illustrative embodiment of the present invention,the time out interval information may include the specification of afixed expiration period or length of time to be added to a current timeof day. Alternatively, the time out interval information may bespecified in terms of selective criteria that facilitates the generationof a time out period, or expiration period. At block 404, the mobiledevice 202 begins a time out clock that measures the time expired fromthe transmission of the registration request by mobile device 202 or thereceipt of the registration request by the electronic mail interfacecomputing device 208. The time expired can be measured in any one of avariety of manners.

At decision block 406, a test is conducted to determine whether themobile device 202 has received a data change notification from theelectronic mail interface computing device 208. If the mobile device 202has received the data notification, at block 408, the mobile devicetransmits a data request to the electronic mail interface computingdevice 208. In an illustrative embodiment of the present invention, thedata request corresponds to a request for the actual data from theelectronic mail interface computing device 208, such as an HTTP datarequest. At block 410, the mobile device 202 obtains the requested datafrom the electronic mail interface computing device 208. The routine 400then proceeds to block 416 to tune the previously provided time outinterval, which will be explained in greater detail below.

Returning to decision block 406, if the mobile device 202 has notreceived a data change notification from the electronic mail interfacecomputing device 208, at decision block 412, a test is conducted todetermine whether the mobile device has received a time out intervalexpiration notification from the electronic mail interface computingdevice 208. If a time out interval expiration notification has beenreceived, the routine 400 proceeds to block 416, which will be explainedin greater detail below.

Returning to decision block 412, if the mobile device has not received atime out interval expiration notification from the electronic mailinterface computing device 208, at decision block 414, a test isconducted to determine whether the time out interval has expired. Asdescribed above, at block 404, the mobile device measures a time expiredsince the transmission of the registration request. If the time outinterval has not expired, the routine 400 returns to decision block 406.Alternatively, if the mobile device 202 detects that the time outinterval has expired, it can assume that the electronic mail interfacecomputing device 208 has failed to transmit a time out intervalexpiration notification and/or that the communication link with theelectronic mail interface computing device 208 has expired.

In an illustrative embodiment of the present invention, the mobiledevice may also wait for an additional period of time to account forpossible delays/lags in transmissions from the electronic mail interfacecomputing device 208. Accordingly, the routine 400 then proceeds toblock 416 to tune the previously provided time out interval. Block 416will be explained in greater detail with regard to sub-routine 500 (FIG.5). Once the time out interval has been tuned, the routine 400 returnsto block 402, where the mobile device transmits a new registrationrequest with the tuned time out interval.

With reference now to FIG. 5, an illustrative sub-routine 500implemented by the mobile device 202 for tuning the time out interval,corresponding to block 416 (FIG. 4) will be described. In anillustrative embodiment of the present invention, the tuning of the timeout interval corresponds to a comparison of a sum of a window of networkcommunication events (e.g., consecutive tuning events) to a plurality ofnetwork confidence value thresholds based upon possible values of thesame window of network communication events.

At block 502, the mobile device obtains a current time out interval andone or more threshold network confidence values. In an illustrativeembodiment of the present invention, the current time out interval cancorrespond to a time out interval that was previously used by the mobiledevice. Additionally, the current time out interval can correspond to adefault time out interval set by the mobile device 202, mobile deviceoperator 204 or any other component. In an illustrative embodiment ofthe present invention, the threshold network confidence valuescorrespond to a maximum threshold value that will be used to incrementthe current time out interval. The threshold values correspond to aminimum threshold value that will be used to decrement the current timeout interval. The maximum and minimum threshold values represent afunction of the maximum and minimum possible network confidence valuesfor a given window of tuning events.

At block 504, the mobile device 202 calculates a current networkconfidence value for the defined window of tuning events. In anillustrative embodiment of the present invention, the mobile device 202can take into account any number of events corresponding to networkcommunications. The events can correspond to internal events specific tothe mobile device 202. For example, the network events can include, butare not limited, to device battery life, internal measurement signalstrength, processing resource utilization, user-specified criteria, andthe like. The events can also correspond to external event specific tothe interaction of the mobile device 202 and the network 206 and/or thenetwork itself. For example, the events can include a droppedcommunication link, a transport error, transmission speed measurements,successful receipt of information, external measurement of signalstrength, external component performance metrics, and the like.

In an illustrative embodiment of the present invention, each networkevent can be associated with a value, such as a weight, that reflectsthe potential effect on a communication link. In one embodiment, thevalues for each event can correspond to binary values of “1” for apositive event and “−1” for a negative event. In another embodiment, thevalues for each event can correspond to a range of values from “−1” to“1”. In such an embodiment, each network event may be accorded a weightreflective of the severity of the network event relative to otherpossible events. In still a further embodiment, the range of values maybe all positive values with higher values reflect more positivecommunication link events.

To calculate a network confidence value, the sum of the weight for eachevent within the window of previous tuning events is calculated. In anillustrative embodiment of the present invention, the weight for eachevent is reduced by the time elapsed since the event occurred. Equation(1) defines the sum as follows:

$\begin{matrix}{n = {( {\sum\limits_{j = 1}^{k}\frac{e_{j}}{t_{0} - t_{e_{j}}}} ) + e_{0}}} & (1)\end{matrix}$

-   -   where n corresponds to the network confidence value;    -   e_(j) corresponds to a weight for each network event; and    -   t_(x) corresponds to a measurement of a time when the network        event occurred.

With continued reference to FIG. 5, at decision block 506, a test isconducted to determine whether the calculated network confidence valueis above the maximum threshold. In an embodiment in which the positive,or larger value, weights represent a positive event, if the calculatednetwork confidence values is above the threshold, the time out intervalis incremented at block 508. The sub-routine 500 returns at block 510.

In an illustrative embodiment of the present invention, the time outinterval may be incremented by a previously defined discrete amount.Alternatively, the time out interval may be increased in an amountproportional to the calculated network confidence value. Still further,the time out interval may be incremented by a schedule that can takeinto account factors such as repeated positive network events, the valueof calculated network confidence, and the like. For example, the mobiledevice 202 may only increase the time out interval if has tracked anumber of immediately preceding positive events (e.g., 5 positive eventsin a row). In another example, the mobile device 202 will increase thetime out interval by an amount that will continuously increase accordingto the number of consecutive positive events. In still a furtherexample, the mobile device 202 may increase the time out interval to amaximum amount upon tracking one or more positive events. In anillustrative embodiment of the present invention, the mobile device 202may limit the time out interval increments to a maximum threshold, suchas the mobile device operator 204 network time out interval.

If the calculated network confidence value is not above the threshold,at decision block 512, a test is conducted to determine whether thecalculated network confidence value is below the minimum threshold. Inan embodiment in which the negative value, or lower value, weightsrepresent a negative event, if the calculated network confidence valuesis below the threshold, at block 514, the time out interval isdecreased. The sub-routine 500 returns at block 516. If, however, atdecision block 512, the calculated network confidence value is not belowthe minimum threshold, the time out interval is not adjusted and thesub-routine 500 returns at block 518.

Similar to block 508, the time out interval may be decreased by apreviously defined discrete amount. Alternatively, the time out intervalmay be decreased in an amount proportional to the calculated networkconfidence value. Still further, the time out interval may be decreasedby a schedule that can take into account factors such as repeatednegative network events, the value of calculated network confidence, andthe like. For example, the mobile device 202 may only decrease the timeout interval if it has tracked a number of immediately precedingnegative events (e.g., 3 negative events in a row). In another example,the mobile device 202 will decrease the time out interval by an amountthat will continuously increase according to the number of consecutivenegative events. In still a further example, the mobile device 202 mayset the time out interval to a minimum amount upon tracking one or morenegative events.

With reference now to FIG. 6, a routine 600 implemented by a networkapplication, such as electronic mail interface computing device 208, forprocessing a mobile device registration request will be described. Atblock 602, the electronic mail interface computing device 208 obtainsthe mobile device registration request that includes a time outinterval. At block 604, the electronic mail interface computing device208 registers the mobile device 202 for the requested data. In anillustrative embodiment of the present invention, the registration cancorrespond to communication with any appropriate local networkcomponents, such as an electronic mail server, to allow the electronicmail interface computing device 208 to receive notification of new data.Additionally, the registration can correspond to the calculation of atime out interval if the registration request included criteria forcalculating an appropriate time out interval. In the event that theregistration request corresponds to multiple data change requests, theelectronic mail interface computing device 208 can maintain a table fortracking criteria for forwarding the mobile client 202 information.

At block 606, the electronic mail interface computing device 208 beginsa time out interval clock that measures the time elapsed since thereceipt/processing of the registration request. In an illustrativeembodiment of the present invention, the time out interval clock cancorrespond to an internal counting device that measures a time elapsedsince the receipt of the registration request. Alternatively, the timeout clock can correspond to a recordation of a time of day that theregistration request was received for comparison with standard time ofday measurements by the electronic mail interface computing device 208.One skilled in the relevant art will appreciate that any number ofadditional methodologies may be utilized to calculate, or otherwisetrack, a time elapsed since the receipt/processing of a registrationrequest.

At decision block 608, a test is conducted to determine whether theelectronic mail interface computing device 208 has received anotification of data change. In an illustrative embodiment of thepresent invention, the notification of data change can correspond toreceipt of a new mail notification from an electronic mail server.Additionally, the notification of data change can correspond to anotification that a particular data file has been modified, accessed,etc. If a data change notification is received, at block 610, theelectronic mail interface computing device 208 transmits a data changenotification to the mobile device 202. In an illustrative embodiment ofthe present invention, the data change notification can include ageneric message instructing the mobile device 202 to transmit a datarequest to the electronic mail interface computing device 208.Additionally, the data change notification can include various meta dataor descriptive information that allows the mobile device 202 to selectwhether the device will transmit a subsequent data request. For example,the notification can include electronic mail message header informationthat allows the user to preview at least a portion of the message todetermine whether he or she would like the entire message retrieved. Inanother example, the notification can include specific criteria thatallow the mobile device 202 to automatically determine whether torequest the change data. At block 612, the routine 600 terminates untilthe next registration request is received by the electronic mailinterface computing device 208.

If, at decision block 608, a notification that data has changed is notreceived, at decision block 614, a test is conducted to determinewhether a time elapsed since the receipt/processing of the registrationrequest exceeds the time out interval. If the time out interval has notbeen exceeded (e.g., expired), the routine 600 returns to decision block608. If the time out interval has expired, at block 616, the electronicmail interface computing device 208 transmits an expired time outinterval notification to the mobile device 202. In an illustrativeembodiment of the present invention, the expired time out intervalnotification corresponds to a message that maintains the communicationlink and that will elicit a renewed registration request by the mobiledevice 202. Additionally, the expired time out interval notification caninclude additional information, such as network event information ornetwork characteristic information (e.g., available bandwidth, networkquality ratings, etc.) that be utilized to tune subsequent time outintervals. At block 618, the routine 600 terminates.

With reference now to FIG. 7, in an alternative embodiment of thepresent invention, the present invention may utilize one or moreadditional communication channels to transmit data change notificationsor time out interval expiration notifications. In accordance with thisembodiment, during the data change registration request, the mobiledevice 202 can include notification preference information for the datachange notifications and/or the time out interval expirationnotification. In one example, the electronic mail interface computingdevice 208 can transmit data to the mobile device operator 204, whichcan include a specification of which communication channel to utilizefor communicating with the mobile device 202. As illustrated in FIG. 7,the mobile device operator 204 can utilize a wireless data channel(e.g., an I.P. communication channel) or a short message service (“SMS”)data channel to transmit information.

In an illustrative embodiment of the present invention, the electronicmail interface computing device 208 can utilize various criteria toselect which communication channel to utilize. For example, a user mayspecify preferences based upon time of day or size of data to betransmitted. Additionally, a user may specify cost savings preferencesbased on usage, data transmission bandwidth, and/or mobile operatorcharges. Further, the user may specify preferences based upon networkcriteria, such as available bandwidth or communication channel latency.

While illustrative embodiments of the invention have been illustratedand described, it will be appreciated that various changes can be madetherein without departing from the spirit and scope of the invention.

1. A method for facilitating communication between a mobile device and anetwork application, the method comprising: obtaining a request forchange of data, wherein the request for change of data includes a firstset of expiration data for returning a response; calculating a timeinterval from a network confidence value, which is a sum of a summandand a weight of an initial network event, the summand being another sumof one or more quotients of a dividend and a divisor, the dividend beinga weight of a network event at a particular time, the divisor being aremainder of a measurement of time of the initial network event as aminuend and a measurement of time of the network event at the particulartime as a subtrahend; monitoring the time interval for providing aresponse to the request for change of data; and transmitting anotification that no data has changed if the time interval exceeds anexpiration period.
 2. The method as recited in claim 1, wherein therequest for change of data corresponds to a request for new electronicmail messages.
 3. The method as recited in claim 1, wherein the secondset of expiration data is modified based on at least one networkcondition.
 4. The method as recited in claim 1, wherein the second setof expiration data corresponds to an adjustment of the first set ofexpiration data based upon a comparison of a sum of the weights for aset of events related to communication between the mobile device and thenetwork application.
 5. The method as recited in claim 4, wherein thesum of the weights for the set of events corresponds to function of theweight of each event diminished by a time expired since the eventoccurred.
 6. The method as recited in claim 1 further comprising:obtaining a subsequent request for change of data, wherein the requestfor change of data includes a second set of expiration data forreturning a response; monitoring a time interval for providing aresponse to the subsequent request for change of data; and transmittinga notification that no data has changed if the time interval exceeds asecond expiration period.
 7. A method for facilitating communicationsbetween a mobile device and a network application, the methodcomprising: transmitting a first request for change of data, wherein therequest for change of data includes a first set of expiration data forreturning a response; determining an event corresponding to the firstrequest for change of data; calculating a second set of expiration datafrom a network confidence value, which is a sum of a summand and aweight of an initial network event, the summand being another sum of oneor more quotients of a dividend and a divisor, the dividend being aweight of a network event at a particular time, the divisor being aremainder of a measurement of time of the initial network event as aminuend and a measurement of time of the network event at the particulartime as a subtrahend returning the second set of expiration data as aresponse; and transmitting a second request for change of data, whereinthe request for change of data includes the second set of expirationdata for returning a response.
 8. The method as recited in claim 7,wherein determining an event corresponding to the first request forchange of data includes obtaining a notification that no data has beenchanged in response to the request for change of data.
 9. The method asrecited in claim 7 further comprising: monitoring a time interval forreceiving a response to the request for change of data; determining whenthe time interval exceeds an expiration period corresponding to thefirst set of expiration data; and determining an event corresponding tothe first request for change of data has occurred based on the timeinterval.
 10. The method as recited in claim 7, wherein generatingsecond set of expiration data for returning a response based upon atleast one network condition includes generating the second set ofexpiration data corresponds to an adjustment of the first set ofexpiration data based upon a comparison of a sum of the weights for aset of events related to communication between the mobile device and thenetwork application.
 11. The method as recited in claim 7, wherein thefirst and second set of expiration data correspond to fixed timeintervals and wherein generating a second set of expiration data forreturning a response based upon at least one network condition includes:associating a weight for a set of events related to communicationbetween a mobile device and the network application; obtaining the firstset of expiration data; adjusting the first set of expiration data togenerate the second set of expiration data based upon a comparison of asum of the weights for the set of events to a set of thresholds; andwherein generating a second set of expiration data for returning aresponse based upon at least one network condition includes generatingthe second set of expiration data based on at least one networkcondition.
 12. The method as recited in claim 11, wherein adjusting thefirst set of expiration data to generate the second set of expirationdata based upon a comparison of a sum of the weights for the set ofevents to a set of thresholds includes increasing the first set ofexpiration data if the sum of the weights exceeds a maximum threshold.13. The method as recited in claim 11, wherein adjusting the first setof expiration data to generate the second set of expiration data basedupon a comparison of a sum of the weights for the set of events to a setof thresholds includes decreasing the first set of expiration data ifthe sum of the weights exceeds a minimum threshold.
 14. The method asrecited in claim 11, wherein the sum of the weights for the set ofevents to a set of thresholds corresponds to function of the weight ofeach event diminished by a time expired since the event occurred.
 15. Asystem for facilitating data exchange, the system comprising: one ormore client devices for generating a request for change of data, whereinthe request for generating a change of data includes a first expirationtime period; at least one network application for receiving the requestfor change of data and transmitting a notification that no data haschanged if a monitored time period corresponding to the first expirationtime period; and a piece of software configured to execute on the systemand further configured to calculate a second expiration time period froma network confidence value, which is a sum of a summand and a weight ofan initial network event, the summand being another sum of one or morequotients of a dividend and a divisor, the dividend being a weight of anetwork event at a particular time, the divisor being a remainder of ameasurement of time of the initial network event as a minuend and ameasurement of time of the network event at the particular time as asubtrahend; wherein the one or more client devices transmits asubsequent request for change of data if an event has occurred, whereinthe subsequent request for change of data includes the second expirationtime period.
 16. The system as recited in claim 15, wherein the one ormore client devices determines an event has occurred if the clientdevice receives a notification that no data has been changed in responseto the request for change of data from the network application.
 17. Thesystem as recited in claim 15, wherein the second expiration time periodcorresponds to an adjustment of the first expiration time period basedupon a comparison of a sum of the weights for a set of events related tocommunication between the mobile device and the network application. 18.The system as recited in claim 17, wherein the sum of the weights forthe set of events to a set of thresholds corresponds to function of theweight of each event diminished by a time expired since the eventoccurred.
 19. The system as recited in claim 15, wherein the request forchange of data corresponds to a request for new electronic mailmessages.